package com.shangguosha.core.lifecycle;

/**
 * 生命周期管理接口
 * 定义游戏对象的生命周期阶段
 */
public interface Lifecycle {
    /**
     * 创建阶段 - 对象初始化
     */
    void onCreate();
    
    /**
     * 激活阶段 - 对象开始工作
     */
    void onActivate();
    
    /**
     * 更新阶段 - 对象状态更新
     */
    void onUpdate();
    
    /**
     * 销毁阶段 - 对象清理资源
     */
    void onDestroy();
    
    /**
     * 获取当前生命周期状态
     */
    LifecycleState getState();
    
    /**
     * 检查对象是否处于激活状态
     */
    default boolean isActive() {
        return getState() == LifecycleState.ACTIVE;
    }
}